package com.luobr.backend.model.vo.user;

import com.luobr.backend.model.entity.User;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import java.io.Serializable;
import java.util.Date;

/**
 * @author: 罗念笙
 * @date: 2025/2/20 16:53
 * 返回用户信息封装类
 */
@Data
public class UserLoginVO implements Serializable {

    // 用户id
    private Long id;

    // 账号
    private String userAccount;

    // 用户昵称
    private String userName;

    // 用户头像
    private String userAvatar;

    // 用户简介
    private String userProfile;

    // 用户角色：user/admin
    private String userRole;

    // 编辑时间
    private Date editTime;

    // 创建时间
    private Date createTime;

    // 更新时间
    private Date updateTime;

    // 序列号
    private static final long serialVersionUID = 6255391706391925937L;

    /**
     * 封装类转对象
     *
     * @param user 用户信息
     * @return 脱敏后的登录封装类
     */
    public static UserLoginVO objToLoginVo(User user) {
        if (user == null) {
            return null;
        }
        UserLoginVO userLoginVO = new UserLoginVO();
        BeanUtils.copyProperties(user, userLoginVO);
        return userLoginVO;
    }
}
